package com.rayframework.context.annontion;

/**
 * 注册基于注解的配置类
 * 代替传统的XML配置文件
 *
 * @author LiaoYuXing-Ray
 * @version 1.0
 * @createDate 2023/11/25 16:01
 **/
public interface AnnotationConfigRegistry {

    /**
     * Register one or more component classes to be processed.
     * <p>Calls to {@code register} are idempotent; adding the same
     * component class more than once has no additional effect.
     * @param componentClasses one or more component classes,
     * e.g. {@link RayConfiguration @Configuration} classes
     */
    void register(Class<?>... componentClasses);

    /**
     * Perform a scan within the specified base packages.
     * @param basePackages the packages to scan for component classes
     */
    void scan(String... basePackages);
}
